// Copyright 2022 AndeyaLee. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Package faygo is a fast and concise Go Web framework.
// This is the v2.0 modular version with improved architecture.
package faygo

// Re-export public packages for external use
import (
	// Public packages that users can import directly
	_ "gitcode.com/xiayang/faygo/pkg/acceptencoder"
	_ "gitcode.com/xiayang/faygo/pkg/apiware"
	_ "gitcode.com/xiayang/faygo/pkg/freecache"
	_ "gitcode.com/xiayang/faygo/pkg/gracenet"
	_ "gitcode.com/xiayang/faygo/pkg/logging"
	_ "gitcode.com/xiayang/faygo/pkg/markdown"
	_ "gitcode.com/xiayang/faygo/pkg/pongo2"
	_ "gitcode.com/xiayang/faygo/pkg/swagger"
)

// Version information
const VERSION = "2.0.0"

// Package documentation
const DOC = `
Faygo v2.0 - Modular Web Framework

This is a major version update with significant architectural improvements:

1. Modular Structure:
   - internal/core: Core framework functionality
   - internal/router: HTTP routing system  
   - internal/context: Request/response context
   - internal/config: Configuration management
   - internal/middleware: Middleware system
   - internal/server: HTTP server implementation
   - internal/session: Session management
   - internal/utils: Utility functions

2. Public Packages (pkg/):
   - acceptencoder: HTTP accept encoding
   - apiware: API parameter binding
   - freecache: In-memory cache
   - gracenet: Graceful network handling
   - logging: Structured logging
   - markdown: Markdown processing
   - pongo2: Template engine
   - swagger: API documentation

3. Breaking Changes:
   - Package structure has been completely reorganized
   - Import paths have changed for internal modules
   - Some APIs may have been modified or removed
   - This version is not backward compatible with v1.x

4. Migration Guide:
   - Update import paths to use the new pkg/ structure
   - Review API changes in the documentation
   - Test your application thoroughly

For detailed migration instructions, see UPGRADE_GUIDE.md
`
